Nowadays, a mobile storing device with flash memory medium is widely used as a substitute for floppy disks and floppy drivers. Due to non-volatility and programmability, the flash memory medium is widely used in devices such as mobile phone, PDA and MP3 or the like.
The flash memory medium can randomly access data stored therein in a manner similar with accessing RAMs, other volatile storage medium, and magnetic disks, but correct and delete the stored data in a different way from those existing ones. That is, when data in a certain block of the flash memory medium are deleted, a section including said block is also deleted. Herein, a plurality of bytes with physically continuous addresses is known as a “block”, which acts as a basic unit to be operated in the flash memory medium. In addition, during the deleting operation, the section composed of a plurality of blocks in the flash memory medium is physically deleted as a basic unit at a time.
A flash memory medium comprises a plurality of sections, each of which is composed of a plurality of blocks. Thus, data in a flash memory medium is generally accessed in terms of blocks other than bytes as used in RAM. An address allocated to a block is known as a physical address. A virtual address of each block in a user's computer is known as a logic address. The logic address and the physical address can be converted to each other via mapping such as via an address-mapping table including mapping information.
Since firmware of the flash memory medium is limited and the capacity of RAM is relatively small, the mapping information stored in the RAM is only one section-address-mapping table corresponding to a certain section. Each section of the flash memory medium corresponds to respective section-address-mapping table. When a file stored in more than one section of the flash memory medium is read, the corresponding section-address-mapping tables are frequently switched in the RAM and a new section-address-mapping table should be established for each switching. When a new section-address-mapping table is established, each block in those read sections is scanned so that a corresponding section-address-mapping table is dynamically generated based on the physical address of each scanned block. Therefore, it costs much time for the flash memory medium to read a file stored in more than one section, resulting in a low-efficiency of data management in the flash memory medium.